Spring Boot CRUD Create İşlemi (User Kaydetme – Service Katmanı ile)

Bu yazıda Spring Boot CRUD operasyonlarından Create yani veritabanına yeni kayıt ekleme işlemini ele alacağız.

Spring Boot uygulamalarında veri ekleme işlemi genellikle Controller → Service → Repository katmanları üzerinden yapılır. Bu yapı uygulamanın daha sürdürülebilir ve temiz mimari ile geliştirilmesini sağlar.

Kısa Özet: Bu rehberde Spring Boot kullanarak CRUD Create işlemi yapmayı, Entity, Repository, Service ve Controller katmanlarını kullanarak yeni bir kullanıcı eklemeyi öğreneceksiniz.
Spring Boot CRUD create işlemi mimarisi

Spring Boot Projesi Oluşturma

İlk olarak Spring Initializr kullanarak projemizi oluşturuyoruz.

Projeyi oluştururken aşağıdaki bağımlılıkları ekleyebilirsiniz:

  • Spring Web
  • Spring Data JPA
  • PostgreSQL veya H2 Database
  • Lombok (opsiyonel)

Projeyi oluşturduktan sonra IntelliJ IDEA veya Eclipse ile açabilirsiniz.

1. User Entity Oluşturma

İlk olarak model veya entity paketi altında User sınıfımızı oluşturuyoruz.

Bu sınıf veritabanındaki kullanıcı tablosunu temsil eder.

spring boot user entity örneği


@Entity
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String username;

private String email;

private String password;

}

Bu sınıfa ayrıca constructor, getter ve setter metodlarını da ekliyoruz.

2. Repository Katmanı Oluşturma

Entity oluşturduktan sonra repository paketi altında UserRepository interface’ini oluşturuyoruz.

spring boot jpa repository


@Repository
public interface UserRepository extends JpaRepository<User, Long> {

}

Burada JpaRepository kullanmamızın nedeni CRUD işlemlerini otomatik olarak sağlayan hazır metodlardan yararlanabilmektir.

Örneğin:

  • save()
  • findAll()
  • deleteById()
  • findById()

3. Service Katmanı Oluşturma

Service katmanı uygulamanın iş mantığını yönetir.

Controller ile Repository arasında bir katman oluşturarak bağımlılıkları azaltmış oluruz.

spring boot service katmanı


@Service
public class UserService {

@Autowired
private UserRepository userRepository;

public User saveUser(UserRequest request){

User user = new User();

user.setUsername(request.getUsername());
user.setEmail(request.getEmail());
user.setPassword(request.getPassword());

return userRepository.save(user);

}

}

4. Request DTO Oluşturma

API üzerinden gelen verileri almak için bir Request DTO oluşturuyoruz.

spring boot request dto


public class UserRequest {

private String username;

private String email;

private String password;

}

Bu sınıf için de getter ve setter metodlarını eklemeyi unutmayın.

5. Controller Katmanı Oluşturma

Son olarak kullanıcı ekleme işlemini dış dünyaya açan Controller sınıfını oluşturuyoruz.

spring boot rest controller örneği


@RestController
@RequestMapping("/api")
public class UserController {

@Autowired
private UserService userService;

@PostMapping("/save")
public User saveUser(@RequestBody UserRequest request){

return userService.saveUser(request);

}

}

Postman ile API Testi

Artık oluşturduğumuz API endpoint’ini test edebiliriz.

Endpoint:



POST http://localhost:8090/api/save

Body kısmında JSON formatında veri gönderiyoruz:



{
"username":"testuser",
"email":"test@test.com",
"password":"123456"
}

spring boot postman create request

İstek başarılı olursa kullanıcı veritabanına kaydedilir.

Sonuç

Bu yazıda Spring Boot CRUD Create işlemini adım adım gerçekleştirdik.

  • User Entity oluşturduk
  • Repository katmanı ekledik
  • Service katmanında iş mantığını yazdık
  • Controller üzerinden API endpoint oluşturduk
  • Postman ile test ettik

Bir sonraki yazımızda Update ve Delete CRUD işlemlerini detaylı olarak ele alacağız.

Etiketler: spring boot crud create, spring boot user save, spring boot jpa save example, spring boot rest api create

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Spring Boot ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *